<?php

// 适配器模式
// 生活中就有很多适配器 电源适配器等
// 可将一个类的接口转换成客户希望的另外一个接口，使得原本不兼容的接口能够一起工作。
// 通俗的理解就是将不同接口适配成统一的接口

interface PerfectMan
{
    function cook();
    function writePhp();
}

class Wife
{
    function cook()
    {
        echo '我会做满汉全席<br/>';
    }
}

class Man implements PerfectMan
{
    protected $wife;

    // 在创建对象的时候保存传递进来的对象
    function __construct($wife)
    {
        $this->wife = $wife;
    }

    function writePhp()
    {
        echo '我会写 PHP 代码<br/>';
    }

    function cook()
    {
        $this->wife->cook();
    }
}

// 测试
$xiaohong = new Wife();
$xiaoming = new Man($xiaohong);
$xiaoming->writePhp();
$xiaoming->cook();